import type { Stream } from 'stream';
export interface ObjectStorage {
  fGetObject(objectName: string, filePath: string): Promise<any>;
  append(objectName: string, content: string): Promise<any>;
  checkObjectNameExist(objectName: string): Promise<boolean>;

  getObjectToBuffer(objectName: string): Promise<Buffer>;
  getObjectToStream(objectName: string): Promise<Stream | null>;
  getObjectToString(objectName: string): Promise<string>;

  fPutObject(objectName: string, filePath: string): Promise<void>;
  putObject(objectName: string, data: any): Promise<void>;
  putObjectWithMetaData(objectName: string, data: any, metaData: object): Promise<void>;
  
  deleteObject(objectName: string): Promise<void>;
  deleteMultiObjects(objectNames: string[]): Promise<void>;

  getLastModified(objectName: string): Promise<Date>;
}